package com.qiang.test13;

import java.io.File;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

public class Demo03 {
    public static void main(String[] args) {
        File f1 = new File("D:\\xx");

        //新建一个集合
        HashMap<String, Integer> sh = new HashMap<>();
/*
统计一个文件夹中每种文件的个数并打印

打印格式如下：

  			txt:3个

  			doc:4个

  			jpg:6个

 */
        getNum(sh, f1);
        /*Set<String> keyset = sh.keySet();
        for (String key : keyset) {
            Integer value = sh.get(key);
            System.out.println(key + "==" + value);
        }*/
        /*sh.forEach((sh) -> {
            System.out.println(sh);
        });*/

        Set<Map.Entry<String, Integer>> en = sh.entrySet();
        for (Map.Entry<String, Integer> st : en) {
            String key = st.getKey();
            Integer value = st.getValue();
        }


    }

    private static void getNum(HashMap<String, Integer> sh, File f1) {

        //获取文件列表
        File[] f2 = f1.listFiles();
        for (File f3 : f2) {

            //判断是不是文件，是的话，获取文件名字，切割文件
            if (f3.isFile()) {
                String name = f3.getName();
                String[] name2 = name.split("\\.");

                //判断名字长度是不是2

                if (name2.length == 2) {
                    //是的话，获取后缀

                    String name3 = name2[1];

                    //判断集合中是否包含后缀名字
                    if (sh.containsKey(name3)) {
                        Integer value = sh.get(name3);
                        value++;
                        sh.put(name3, value);
                    } else {
                        sh.put(name3, 1);
                    }

                }
            } else {
                getNum(sh, f3);
            }
        }

    }
}
